#include <stdint.h>
#include<stdio.h>
#include<stdlib.h>
#include <xmmintrin.h>
#define SIZE 100000000

int main()
{
    int64_t *array1, *array2;
    int64_t i;

    array1 = (int64_t *) malloc(SIZE * sizeof(int64_t ));
    array2 = (int64_t *) malloc(SIZE * sizeof(int64_t ));
    
    for ( i=0; i<SIZE; i= i + 4)
    {
        _mm_prefetch(&array1[i+4], 0 );
        array1[i  ] = -1;
        array1[i + 1] = -1;
        array1[i + 2 ] = -1;
        array1[i + 3 ] = -1;
    }

    for ( i=0; i<SIZE; i = i + 4)
    {
        _mm_prefetch((&array1[i+4]), 0 );
        array2[i] = array1[i]; 
        array2[i+1] = array1[i+1]; 
        array2[i+2] = array1[i+2]; 
        array2[i+3] = array1[i+3]; 
    }
    free(array1);free(array2);
    return 0;
}
